library IEEE ;
use IEEE.STD_LOGIC_1164.ALL ;
use IEEE.STD_LOGIC_ARITH.ALL ;
use IEEE.STD_LOGIC_UNSIGNED.ALL ;
entity cntreg7 is
    Port (   CCnt : in std_logic ;
          CReg : in std_logic ;
          R : in std_logic ;
          Q : out std_logic_vector ( 6 downto 0 ) ;
          EndVal : out std_logic ) ;
end cntreg7 ;
architecture Behavioral of cntreg7 is
signal Cnt : std_logic_vector ( 6 downto 0 ) := "0000000" ;
signal Reg : std_logic_vector ( 6 downto 0 ) := "0000000" ;
begin
    count: process( CCnt )
    begin
        if ( CCnt'event and CCnt = '1' ) then
            if ( R = '1' ) then
                Cnt <= "0000001" ;
            else
                if ( Cnt = "1111111" ) then
                    Cnt <= Cnt ;
                else
                    Cnt <= Cnt + 1 ;
                end if ;
            end if ;
        end if ;
    end process count ;
    store: process( CReg )
    begin
        if ( CReg'event and CReg = '1' ) then
            Reg <= Cnt ;
        end if ;
    end process store ;
    Q <= Reg ;
    EndVal <= '1' when Cnt="1111111" else '0' ;
end Behavioral ;
HTML Source generated with the hdl2html perl script from
Millogic